{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Gradient Boosted Models\n",
    "\n",
    "Gradient Boosting does not refer to one particular model, but a versatile framework to optimize many loss functions. It follows the strength in numbers principle by combining the predictions of multiple *base learners* to obtain a powerful overall model. The base learners are often very simple models that are only slightly better than random guessing, which is why they are also referred to as *weak learners*. The predictions are combined in an additive manner, where the addition of each base model improves (or \"boosts\") the overall model. Therefore, the overall model $f$ is an additive model of the form:\n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "f(\\mathbf{x}) = \\sum_{m=1}^M \\beta_m g(\\mathbf{x}; {\\theta}_m),\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "where $M > 0$ denotes the number of base learners, and $\\beta_m \\in \\mathbb{R}$ is a weighting term. The function $g$ refers to a *base learner* and is parameterized by the vector ${\\theta}$. Individual base learners differ in the configuration of their parameters ${\\theta}$, which is indicated by a subscript $m$.\n",
    "\n",
    "A gradient boosted model is similar to a [Random Survival Forest](random-survival-forest.ipynb), in the sense that it relies on multiple base learners to produce an overall prediction, but differs in how those are combined. While a Random Survival Forest fits a set of Survival Trees independently and then averages their predictions, a gradient boosted model is constructed sequentially in a greedy stagewise fashion.\n",
    "\n",
    "## Base Learners\n",
    "\n",
    "Depending on the loss function to be minimized and base learner used, different models arise. \n",
    "[sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/latest/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) implements gradient boosting with regression tree base learner, and\n",
    "[sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/latest/api/generated/sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis.html#sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis) uses component-wise least squares as base learner. The former is very versatile and can account for complicated non-linear relationships between features and time to survival. When using component-wise least squares as base learner, the final model will be a linear model, but only a small subset of features will be selected, similar to the [LASSO penalized Cox model](coxnet.ipynb#LASSO).\n",
    "\n",
    "\n",
    "## Losses\n",
    "\n",
    "### Cox's Partial Likelihood\n",
    "\n",
    "The loss function can be specified via the `loss` argument loss; the default loss function  is the partial likelihood loss of [Cox's proportional hazards model](https://en.wikipedia.org/wiki/Proportional_hazards_model) (`coxph`). Therefore, the objective is to maximize the log partial likelihood function, but replacing the traditional linear model $\\mathbf{x}^\\top \\beta$ with the additive model $f(\\mathbf{x})$:\n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "  \\arg \\min_{f} \\quad \\sum_{i=1}^n \\delta_i \\left[ f(\\mathbf{x}_i)\n",
    "- \\log \\left( \\sum_{j \\in \\mathcal{R}_i} \\exp(f(\\mathbf{x}_j)) \\right) \\right] .\n",
    "\\end{equation}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "from sksurv.datasets import load_breast_cancer\n",
    "from sksurv.ensemble import ComponentwiseGradientBoostingSurvivalAnalysis, GradientBoostingSurvivalAnalysis\n",
    "from sksurv.preprocessing import OneHotEncoder"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To demonstrate its use we are going to use the [breast cancer data](https://clincancerres.aacrjournals.org/content/13/11/3207), which contains the expression levels of 76 genes, age, estrogen receptor status (`er`), tumor size and grade for 198 individuals. The objective is to predict the time to distant metastasis.\n",
    "\n",
    "First, we load the data and perform one-hot encoding of categorical variables `er` and `grade`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "X, y = load_breast_cancer()\n",
    "Xt = OneHotEncoder().fit_transform(X)\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(Xt, y, test_size=0.25, random_state=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we are using gradient boosting on Cox's partial likelihood with regression trees base learners, which we restrict to using only a single split (so-called *stumps*)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.756\n"
     ]
    }
   ],
   "source": [
    "est_cph_tree = GradientBoostingSurvivalAnalysis(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0)\n",
    "est_cph_tree.fit(X_train, y_train)\n",
    "cindex = est_cph_tree.score(X_test, y_test)\n",
    "print(round(cindex, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This model achieves a concordance index of 0.756 on the test data. Let's see how the test performance changes with the ensemble size (`n_estimators`)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "scores_cph_tree = {}\n",
    "\n",
    "est_cph_tree = GradientBoostingSurvivalAnalysis(learning_rate=1.0, max_depth=1, random_state=0)\n",
    "for i in range(1, 31):\n",
    "    n_estimators = i * 5\n",
    "    est_cph_tree.set_params(n_estimators=n_estimators)\n",
    "    est_cph_tree.fit(X_train, y_train)\n",
    "    scores_cph_tree[n_estimators] = est_cph_tree.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x, y = zip(*scores_cph_tree.items())\n",
    "plt.plot(x, y)\n",
    "plt.xlabel(\"n_estimator\")\n",
    "plt.ylabel(\"concordance index\")\n",
    "plt.grid(True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the performance quickly improves, but also that the performance starts to decrease if the ensemble becomes too big.\n",
    "\n",
    "Let's repeat the analysis using component-wise least squares base learners."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "scores_cph_ls = {}\n",
    "\n",
    "est_cph_ls = ComponentwiseGradientBoostingSurvivalAnalysis(learning_rate=1.0, random_state=0)\n",
    "for i in range(1, 31):\n",
    "    n_estimators = i * 10\n",
    "    est_cph_ls.set_params(n_estimators=n_estimators)\n",
    "    est_cph_ls.fit(X_train, y_train)\n",
    "    scores_cph_ls[n_estimators] = est_cph_ls.score(X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x, y = zip(*scores_cph_ls.items())\n",
    "plt.plot(x, y)\n",
    "plt.xlabel(\"n_estimator\")\n",
    "plt.ylabel(\"concordance index\")\n",
    "plt.grid(True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The performance increase is much slower here and its maximum performance seems to be below that of the ensemble of tree-based learners. This is not surprising, because with component-wise least squares base learners the overall ensemble is a linear model, whereas with tree-based learners it will be a non-linear model.\n",
    "\n",
    "The coefficients of the model can be retrieved as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of non-zero coefficients: 9\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "er=positive          -0.837549\n",
       "X207118_s_at          0.239161\n",
       "grade=unkown         -0.234126\n",
       "size                  0.214384\n",
       "X204540_at            0.094421\n",
       "X204014_at           -0.091377\n",
       "X216103_at           -0.086147\n",
       "X221916_at           -0.081565\n",
       "grade=intermediate    0.065916\n",
       "dtype: float64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "coef = pd.Series(est_cph_ls.coef_, [\"Intercept\"] + Xt.columns.tolist())\n",
    "\n",
    "print(\"Number of non-zero coefficients:\", (coef != 0).sum())\n",
    "coef_nz = coef[coef != 0]\n",
    "coef_order = coef_nz.abs().sort_values(ascending=False).index\n",
    "coef_nz.loc[coef_order]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Despite using hundreds of iterations, the resulting model is very parsimonious and easy to interpret."
   ]
  },
  {
   "attachments": {
    "aft-ph.svg": {
     "image/svg+xml": [
      "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIKICAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPCEtLSBDcmVhdGVkIHdpdGggbWF0cGxvdGxpYiAoaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pIC0tPgo8c3ZnIGhlaWdodD0iMjg5LjM3NjI1cHQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDQ2MC42Njg3NSAyODkuMzc2MjUiIHdpZHRoPSI0NjAuNjY4NzVwdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiA8bWV0YWRhdGE+CiAgPHJkZjpSREYgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICA8Y2M6V29yaz4KICAgIDxkYzp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiLz4KICAgIDxkYzpkYXRlPjIwMjAtMTAtMDNUMTk6MTQ6MDMuNTQ4ODc0PC9kYzpkYXRlPgogICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICA8ZGM6Y3JlYXRvcj4KICAgICA8Y2M6QWdlbnQ+CiAgICAgIDxkYzp0aXRsZT5NYXRwbG90bGliIHYzLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88L2RjOnRpdGxlPgogICAgIDwvY2M6QWdlbnQ+CiAgICA8L2RjOmNyZWF0b3I+CiAgIDwvY2M6V29yaz4KICA8L3JkZjpSREY+CiA8L21ldGFkYXRhPgogPGRlZnM+CiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4qe3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO308L3N0eWxlPgogPC9kZWZzPgogPGcgaWQ9ImZpZ3VyZV8xIj4KICA8ZyBpZD0icGF0Y2hfMSI+CiAgIDxwYXRoIGQ9Ik0gMCAyODkuMzc2MjUgCkwgNDYwLjY2ODc1IDI4OS4zNzYyNSAKTCA0NjAuNjY4NzUgMCAKTCAwIDAgCnoKIiBzdHlsZT0iZmlsbDpub25lOyIvPgogIDwvZz4KICA8ZyBpZD0iYXhlc18xIj4KICAgPGcgaWQ9InBhdGNoXzIiPgogICAgPHBhdGggZD0iTSA2Mi44Njg3NSAyNTEuODIgCkwgNDUzLjQ2ODc1IDI1MS44MiAKTCA0NTMuNDY4NzUgNy4yIApMIDYyLjg2ODc1IDcuMiAKegoiIHN0eWxlPSJmaWxsOiNmZmZmZmY7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9Im1hdHBsb3RsaWIuYXhpc18xIj4KICAgIDxnIGlkPSJ4dGlja18xIj4KICAgICA8ZyBpZD0ibGluZTJkXzEiPgogICAgICA8ZGVmcz4KICAgICAgIDxwYXRoIGQ9Ik0gMCAwIApMIDAgMy41IAoiIGlkPSJtOGRjMzdkYTQ1NiIgc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjg7Ii8+CiAgICAgIDwvZGVmcz4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIgeD0iMTIzLjQ4OTU3OCIgeGxpbms6aHJlZj0iI204ZGMzN2RhNDU2IiB5PSIyNTEuODIiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8xIj4KICAgICAgPCEtLSAyMDAgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExMy45NDU4MjggMjY2LjQxODQzOClzY2FsZSgwLjEgLTAuMSkiPgogICAgICAgPGRlZnM+CiAgICAgICAgPHBhdGggZD0iTSAxOS4xODc1IDguMjk2ODc1IApMIDUzLjYwOTM3NSA4LjI5Njg3NSAKTCA1My42MDkzNzUgMCAKTCA3LjMyODEyNSAwIApMIDcuMzI4MTI1IDguMjk2ODc1IApRIDEyLjkzNzUgMTQuMTA5Mzc1IDIyLjYyNSAyMy44OTA2MjUgClEgMzIuMzI4MTI1IDMzLjY4NzUgMzQuODEyNSAzNi41MzEyNSAKUSAzOS41NDY4NzUgNDEuODQzNzUgNDEuNDIxODc1IDQ1LjUzMTI1IApRIDQzLjMxMjUgNDkuMjE4NzUgNDMuMzEyNSA1Mi43ODEyNSAKUSA0My4zMTI1IDU4LjU5Mzc1IDM5LjIzNDM3NSA2Mi4yNSAKUSAzNS4xNTYyNSA2NS45MjE4NzUgMjguNjA5Mzc1IDY1LjkyMTg3NSAKUSAyMy45Njg3NSA2NS45MjE4NzUgMTguODEyNSA2NC4zMTI1IApRIDEzLjY3MTg3NSA2Mi43MDMxMjUgNy44MTI1IDU5LjQyMTg3NSAKTCA3LjgxMjUgNjkuMzkwNjI1IApRIDEzLjc2NTYyNSA3MS43ODEyNSAxOC45Mzc1IDczIApRIDI0LjEyNSA3NC4yMTg3NSAyOC40MjE4NzUgNzQuMjE4NzUgClEgMzkuNzUgNzQuMjE4NzUgNDYuNDg0Mzc1IDY4LjU0Njg3NSAKUSA1My4yMTg3NSA2Mi44OTA2MjUgNTMuMjE4NzUgNTMuNDIxODc1IApRIDUzLjIxODc1IDQ4LjkyMTg3NSA1MS41MzEyNSA0NC44OTA2MjUgClEgNDkuODU5Mzc1IDQwLjg3NSA0NS40MDYyNSAzNS40MDYyNSAKUSA0NC4xODc1IDMzLjk4NDM3NSAzNy42NDA2MjUgMjcuMjE4NzUgClEgMzEuMTA5Mzc1IDIwLjQ1MzEyNSAxOS4xODc1IDguMjk2ODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtNTAiLz4KICAgICAgICA8cGF0aCBkPSJNIDMxLjc4MTI1IDY2LjQwNjI1IApRIDI0LjE3MTg3NSA2Ni40MDYyNSAyMC4zMjgxMjUgNTguOTA2MjUgClEgMTYuNSA1MS40MjE4NzUgMTYuNSAzNi4zNzUgClEgMTYuNSAyMS4zOTA2MjUgMjAuMzI4MTI1IDEzLjg5MDYyNSAKUSAyNC4xNzE4NzUgNi4zOTA2MjUgMzEuNzgxMjUgNi4zOTA2MjUgClEgMzkuNDUzMTI1IDYuMzkwNjI1IDQzLjI4MTI1IDEzLjg5MDYyNSAKUSA0Ny4xMjUgMjEuMzkwNjI1IDQ3LjEyNSAzNi4zNzUgClEgNDcuMTI1IDUxLjQyMTg3NSA0My4yODEyNSA1OC45MDYyNSAKUSAzOS40NTMxMjUgNjYuNDA2MjUgMzEuNzgxMjUgNjYuNDA2MjUgCnoKTSAzMS43ODEyNSA3NC4yMTg3NSAKUSA0NC4wNDY4NzUgNzQuMjE4NzUgNTAuNTE1NjI1IDY0LjUxNTYyNSAKUSA1Ni45ODQzNzUgNTQuODI4MTI1IDU2Ljk4NDM3NSAzNi4zNzUgClEgNTYuOTg0Mzc1IDE3Ljk2ODc1IDUwLjUxNTYyNSA4LjI2NTYyNSAKUSA0NC4wNDY4NzUgLTEuNDIxODc1IDMxLjc4MTI1IC0xLjQyMTg3NSAKUSAxOS41MzEyNSAtMS40MjE4NzUgMTMuMDYyNSA4LjI2NTYyNSAKUSA2LjU5Mzc1IDE3Ljk2ODc1IDYuNTkzNzUgMzYuMzc1IApRIDYuNTkzNzUgNTQuODI4MTI1IDEzLjA2MjUgNjQuNTE1NjI1IApRIDE5LjUzMTI1IDc0LjIxODc1IDMxLjc4MTI1IDc0LjIxODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtNDgiLz4KICAgICAgIDwvZGVmcz4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNTAiLz4KICAgICAgIDx1c2UgeD0iNjMuNjIzMDQ3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxMjcuMjQ2MDk0IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inh0aWNrXzIiPgogICAgIDxnIGlkPSJsaW5lMmRfMiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjE4NC4yOTI4MTYiIHhsaW5rOmhyZWY9IiNtOGRjMzdkYTQ1NiIgeT0iMjUxLjgyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfMiI+CiAgICAgIDwhLS0gNDAwIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNzQuNzQ5MDY2IDI2Ni40MTg0Mzgpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0gMzcuNzk2ODc1IDY0LjMxMjUgCkwgMTIuODkwNjI1IDI1LjM5MDYyNSAKTCAzNy43OTY4NzUgMjUuMzkwNjI1IAp6Ck0gMzUuMjAzMTI1IDcyLjkwNjI1IApMIDQ3LjYwOTM3NSA3Mi45MDYyNSAKTCA0Ny42MDkzNzUgMjUuMzkwNjI1IApMIDU4LjAxNTYyNSAyNS4zOTA2MjUgCkwgNTguMDE1NjI1IDE3LjE4NzUgCkwgNDcuNjA5Mzc1IDE3LjE4NzUgCkwgNDcuNjA5Mzc1IDAgCkwgMzcuNzk2ODc1IDAgCkwgMzcuNzk2ODc1IDE3LjE4NzUgCkwgNC44OTA2MjUgMTcuMTg3NSAKTCA0Ljg5MDYyNSAyNi43MDMxMjUgCnoKIiBpZD0iRGVqYVZ1U2Fucy01MiIvPgogICAgICAgPC9kZWZzPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy01MiIvPgogICAgICAgPHVzZSB4PSI2My42MjMwNDciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjEyNy4yNDYwOTQiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieHRpY2tfMyI+CiAgICAgPGcgaWQ9ImxpbmUyZF8zIj4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIgeD0iMjQ1LjA5NjA1NCIgeGxpbms6aHJlZj0iI204ZGMzN2RhNDU2IiB5PSIyNTEuODIiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8zIj4KICAgICAgPCEtLSA2MDAgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzNS41NTIzMDQgMjY2LjQxODQzOClzY2FsZSgwLjEgLTAuMSkiPgogICAgICAgPGRlZnM+CiAgICAgICAgPHBhdGggZD0iTSAzMy4wMTU2MjUgNDAuMzc1IApRIDI2LjM3NSA0MC4zNzUgMjIuNDg0Mzc1IDM1LjgyODEyNSAKUSAxOC42MDkzNzUgMzEuMjk2ODc1IDE4LjYwOTM3NSAyMy4zOTA2MjUgClEgMTguNjA5Mzc1IDE1LjUzMTI1IDIyLjQ4NDM3NSAxMC45NTMxMjUgClEgMjYuMzc1IDYuMzkwNjI1IDMzLjAxNTYyNSA2LjM5MDYyNSAKUSAzOS42NTYyNSA2LjM5MDYyNSA0My41MzEyNSAxMC45NTMxMjUgClEgNDcuNDA2MjUgMTUuNTMxMjUgNDcuNDA2MjUgMjMuMzkwNjI1IApRIDQ3LjQwNjI1IDMxLjI5Njg3NSA0My41MzEyNSAzNS44MjgxMjUgClEgMzkuNjU2MjUgNDAuMzc1IDMzLjAxNTYyNSA0MC4zNzUgCnoKTSA1Mi41OTM3NSA3MS4yOTY4NzUgCkwgNTIuNTkzNzUgNjIuMzEyNSAKUSA0OC44NzUgNjQuMDYyNSA0NS4wOTM3NSA2NC45ODQzNzUgClEgNDEuMzEyNSA2NS45MjE4NzUgMzcuNTkzNzUgNjUuOTIxODc1IApRIDI3LjgyODEyNSA2NS45MjE4NzUgMjIuNjcxODc1IDU5LjMyODEyNSAKUSAxNy41MzEyNSA1Mi43MzQzNzUgMTYuNzk2ODc1IDM5LjQwNjI1IApRIDE5LjY3MTg3NSA0My42NTYyNSAyNC4wMTU2MjUgNDUuOTIxODc1IApRIDI4LjM3NSA0OC4xODc1IDMzLjU5Mzc1IDQ4LjE4NzUgClEgNDQuNTc4MTI1IDQ4LjE4NzUgNTAuOTUzMTI1IDQxLjUxNTYyNSAKUSA1Ny4zMjgxMjUgMzQuODU5Mzc1IDU3LjMyODEyNSAyMy4zOTA2MjUgClEgNTcuMzI4MTI1IDEyLjE1NjI1IDUwLjY4NzUgNS4zNTkzNzUgClEgNDQuMDQ2ODc1IC0xLjQyMTg3NSAzMy4wMTU2MjUgLTEuNDIxODc1IApRIDIwLjM1OTM3NSAtMS40MjE4NzUgMTMuNjcxODc1IDguMjY1NjI1IApRIDYuOTg0Mzc1IDE3Ljk2ODc1IDYuOTg0Mzc1IDM2LjM3NSAKUSA2Ljk4NDM3NSA1My42NTYyNSAxNS4xODc1IDYzLjkzNzUgClEgMjMuMzkwNjI1IDc0LjIxODc1IDM3LjIwMzEyNSA3NC4yMTg3NSAKUSA0MC45MjE4NzUgNzQuMjE4NzUgNDQuNzAzMTI1IDczLjQ4NDM3NSAKUSA0OC40ODQzNzUgNzIuNzUgNTIuNTkzNzUgNzEuMjk2ODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtNTQiLz4KICAgICAgIDwvZGVmcz4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNTQiLz4KICAgICAgIDx1c2UgeD0iNjMuNjIzMDQ3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxMjcuMjQ2MDk0IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inh0aWNrXzQiPgogICAgIDxnIGlkPSJsaW5lMmRfNCI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjMwNS44OTkyOTIiIHhsaW5rOmhyZWY9IiNtOGRjMzdkYTQ1NiIgeT0iMjUxLjgyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfNCI+CiAgICAgIDwhLS0gODAwIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyOTYuMzU1NTQyIDI2Ni40MTg0Mzgpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0gMzEuNzgxMjUgMzQuNjI1IApRIDI0Ljc1IDM0LjYyNSAyMC43MTg3NSAzMC44NTkzNzUgClEgMTYuNzAzMTI1IDI3LjA5Mzc1IDE2LjcwMzEyNSAyMC41MTU2MjUgClEgMTYuNzAzMTI1IDEzLjkyMTg3NSAyMC43MTg3NSAxMC4xNTYyNSAKUSAyNC43NSA2LjM5MDYyNSAzMS43ODEyNSA2LjM5MDYyNSAKUSAzOC44MTI1IDYuMzkwNjI1IDQyLjg1OTM3NSAxMC4xNzE4NzUgClEgNDYuOTIxODc1IDEzLjk2ODc1IDQ2LjkyMTg3NSAyMC41MTU2MjUgClEgNDYuOTIxODc1IDI3LjA5Mzc1IDQyLjg5MDYyNSAzMC44NTkzNzUgClEgMzguODc1IDM0LjYyNSAzMS43ODEyNSAzNC42MjUgCnoKTSAyMS45MjE4NzUgMzguODEyNSAKUSAxNS41NzgxMjUgNDAuMzc1IDEyLjAzMTI1IDQ0LjcxODc1IApRIDguNSA0OS4wNzgxMjUgOC41IDU1LjMyODEyNSAKUSA4LjUgNjQuMDYyNSAxNC43MTg3NSA2OS4xNDA2MjUgClEgMjAuOTUzMTI1IDc0LjIxODc1IDMxLjc4MTI1IDc0LjIxODc1IApRIDQyLjY3MTg3NSA3NC4yMTg3NSA0OC44NzUgNjkuMTQwNjI1IApRIDU1LjA3ODEyNSA2NC4wNjI1IDU1LjA3ODEyNSA1NS4zMjgxMjUgClEgNTUuMDc4MTI1IDQ5LjA3ODEyNSA1MS41MzEyNSA0NC43MTg3NSAKUSA0OCA0MC4zNzUgNDEuNzAzMTI1IDM4LjgxMjUgClEgNDguODI4MTI1IDM3LjE1NjI1IDUyLjc5Njg3NSAzMi4zMTI1IApRIDU2Ljc4MTI1IDI3LjQ4NDM3NSA1Ni43ODEyNSAyMC41MTU2MjUgClEgNTYuNzgxMjUgOS45MDYyNSA1MC4zMTI1IDQuMjM0Mzc1IApRIDQzLjg0Mzc1IC0xLjQyMTg3NSAzMS43ODEyNSAtMS40MjE4NzUgClEgMTkuNzM0Mzc1IC0xLjQyMTg3NSAxMy4yNSA0LjIzNDM3NSAKUSA2Ljc4MTI1IDkuOTA2MjUgNi43ODEyNSAyMC41MTU2MjUgClEgNi43ODEyNSAyNy40ODQzNzUgMTAuNzgxMjUgMzIuMzEyNSAKUSAxNC43OTY4NzUgMzcuMTU2MjUgMjEuOTIxODc1IDM4LjgxMjUgCnoKTSAxOC4zMTI1IDU0LjM5MDYyNSAKUSAxOC4zMTI1IDQ4LjczNDM3NSAyMS44NDM3NSA0NS41NjI1IApRIDI1LjM5MDYyNSA0Mi4zOTA2MjUgMzEuNzgxMjUgNDIuMzkwNjI1IApRIDM4LjE0MDYyNSA0Mi4zOTA2MjUgNDEuNzE4NzUgNDUuNTYyNSAKUSA0NS4zMTI1IDQ4LjczNDM3NSA0NS4zMTI1IDU0LjM5MDYyNSAKUSA0NS4zMTI1IDYwLjA2MjUgNDEuNzE4NzUgNjMuMjM0Mzc1IApRIDM4LjE0MDYyNSA2Ni40MDYyNSAzMS43ODEyNSA2Ni40MDYyNSAKUSAyNS4zOTA2MjUgNjYuNDA2MjUgMjEuODQzNzUgNjMuMjM0Mzc1IApRIDE4LjMxMjUgNjAuMDYyNSAxOC4zMTI1IDU0LjM5MDYyNSAKegoiIGlkPSJEZWphVnVTYW5zLTU2Ii8+CiAgICAgICA8L2RlZnM+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTU2Ii8+CiAgICAgICA8dXNlIHg9IjYzLjYyMzA0NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMTI3LjI0NjA5NCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ4dGlja181Ij4KICAgICA8ZyBpZD0ibGluZTJkXzUiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjg7IiB4PSIzNjYuNzAyNTMiIHhsaW5rOmhyZWY9IiNtOGRjMzdkYTQ1NiIgeT0iMjUxLjgyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfNSI+CiAgICAgIDwhLS0gMTAwMCAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzUzLjk3NzUzIDI2Ni40MTg0Mzgpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgIDxkZWZzPgogICAgICAgIDxwYXRoIGQ9Ik0gMTIuNDA2MjUgOC4yOTY4NzUgCkwgMjguNTE1NjI1IDguMjk2ODc1IApMIDI4LjUxNTYyNSA2My45MjE4NzUgCkwgMTAuOTg0Mzc1IDYwLjQwNjI1IApMIDEwLjk4NDM3NSA2OS4zOTA2MjUgCkwgMjguNDIxODc1IDcyLjkwNjI1IApMIDM4LjI4MTI1IDcyLjkwNjI1IApMIDM4LjI4MTI1IDguMjk2ODc1IApMIDU0LjM5MDYyNSA4LjI5Njg3NSAKTCA1NC4zOTA2MjUgMCAKTCAxMi40MDYyNSAwIAp6CiIgaWQ9IkRlamFWdVNhbnMtNDkiLz4KICAgICAgIDwvZGVmcz4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDkiLz4KICAgICAgIDx1c2UgeD0iNjMuNjIzMDQ3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxMjcuMjQ2MDk0IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxOTAuODY5MTQxIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inh0aWNrXzYiPgogICAgIDxnIGlkPSJsaW5lMmRfNiI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjQyNy41MDU3NjciIHhsaW5rOmhyZWY9IiNtOGRjMzdkYTQ1NiIgeT0iMjUxLjgyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfNiI+CiAgICAgIDwhLS0gMTIwMCAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNDE0Ljc4MDc2NyAyNjYuNDE4NDM4KXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ5Ii8+CiAgICAgICA8dXNlIHg9IjYzLjYyMzA0NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNTAiLz4KICAgICAgIDx1c2UgeD0iMTI3LjI0NjA5NCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMTkwLjg2OTE0MSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ0ZXh0XzciPgogICAgIDwhLS0gVGltZSAtLT4KICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNDUuOTM1MTU2IDI4MC4wOTY1NjMpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgPGRlZnM+CiAgICAgICA8cGF0aCBkPSJNIC0wLjI5Njg3NSA3Mi45MDYyNSAKTCA2MS4zNzUgNzIuOTA2MjUgCkwgNjEuMzc1IDY0LjU5Mzc1IApMIDM1LjUgNjQuNTkzNzUgCkwgMzUuNSAwIApMIDI1LjU5Mzc1IDAgCkwgMjUuNTkzNzUgNjQuNTkzNzUgCkwgLTAuMjk2ODc1IDY0LjU5Mzc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtODQiLz4KICAgICAgIDxwYXRoIGQ9Ik0gOS40MjE4NzUgNTQuNjg3NSAKTCAxOC40MDYyNSA1NC42ODc1IApMIDE4LjQwNjI1IDAgCkwgOS40MjE4NzUgMCAKegpNIDkuNDIxODc1IDc1Ljk4NDM3NSAKTCAxOC40MDYyNSA3NS45ODQzNzUgCkwgMTguNDA2MjUgNjQuNTkzNzUgCkwgOS40MjE4NzUgNjQuNTkzNzUgCnoKIiBpZD0iRGVqYVZ1U2Fucy0xMDUiLz4KICAgICAgIDxwYXRoIGQ9Ik0gNTIgNDQuMTg3NSAKUSA1NS4zNzUgNTAuMjUgNjAuMDYyNSA1My4xMjUgClEgNjQuNzUgNTYgNzEuMDkzNzUgNTYgClEgNzkuNjQwNjI1IDU2IDg0LjI4MTI1IDUwLjAxNTYyNSAKUSA4OC45MjE4NzUgNDQuMDQ2ODc1IDg4LjkyMTg3NSAzMy4wMTU2MjUgCkwgODguOTIxODc1IDAgCkwgNzkuODkwNjI1IDAgCkwgNzkuODkwNjI1IDMyLjcxODc1IApRIDc5Ljg5MDYyNSA0MC41NzgxMjUgNzcuMDkzNzUgNDQuMzc1IApRIDc0LjMxMjUgNDguMTg3NSA2OC42MDkzNzUgNDguMTg3NSAKUSA2MS42MjUgNDguMTg3NSA1Ny41NjI1IDQzLjU0Njg3NSAKUSA1My41MTU2MjUgMzguOTIxODc1IDUzLjUxNTYyNSAzMC45MDYyNSAKTCA1My41MTU2MjUgMCAKTCA0NC40ODQzNzUgMCAKTCA0NC40ODQzNzUgMzIuNzE4NzUgClEgNDQuNDg0Mzc1IDQwLjYyNSA0MS43MDMxMjUgNDQuNDA2MjUgClEgMzguOTIxODc1IDQ4LjE4NzUgMzMuMTA5Mzc1IDQ4LjE4NzUgClEgMjYuMjE4NzUgNDguMTg3NSAyMi4xNTYyNSA0My41MzEyNSAKUSAxOC4xMDkzNzUgMzguODc1IDE4LjEwOTM3NSAzMC45MDYyNSAKTCAxOC4xMDkzNzUgMCAKTCA5LjA3ODEyNSAwIApMIDkuMDc4MTI1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDQ2LjE4NzUgClEgMjEuMTg3NSA1MS4yMTg3NSAyNS40ODQzNzUgNTMuNjA5Mzc1IApRIDI5Ljc4MTI1IDU2IDM1LjY4NzUgNTYgClEgNDEuNjU2MjUgNTYgNDUuODI4MTI1IDUyLjk2ODc1IApRIDUwIDQ5Ljk1MzEyNSA1MiA0NC4xODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtMTA5Ii8+CiAgICAgICA8cGF0aCBkPSJNIDU2LjIwMzEyNSAyOS41OTM3NSAKTCA1Ni4yMDMxMjUgMjUuMjAzMTI1IApMIDE0Ljg5MDYyNSAyNS4yMDMxMjUgClEgMTUuNDg0Mzc1IDE1LjkyMTg3NSAyMC40ODQzNzUgMTEuMDYyNSAKUSAyNS40ODQzNzUgNi4yMDMxMjUgMzQuNDIxODc1IDYuMjAzMTI1IApRIDM5LjU5Mzc1IDYuMjAzMTI1IDQ0LjQ1MzEyNSA3LjQ2ODc1IApRIDQ5LjMxMjUgOC43MzQzNzUgNTQuMTA5Mzc1IDExLjI4MTI1IApMIDU0LjEwOTM3NSAyLjc4MTI1IApRIDQ5LjI2NTYyNSAwLjczNDM3NSA0NC4xODc1IC0wLjM0Mzc1IApRIDM5LjEwOTM3NSAtMS40MjE4NzUgMzMuODkwNjI1IC0xLjQyMTg3NSAKUSAyMC43OTY4NzUgLTEuNDIxODc1IDEzLjE1NjI1IDYuMTg3NSAKUSA1LjUxNTYyNSAxMy44MTI1IDUuNTE1NjI1IDI2LjgxMjUgClEgNS41MTU2MjUgNDAuMjM0Mzc1IDEyLjc2NTYyNSA0OC4xMDkzNzUgClEgMjAuMDE1NjI1IDU2IDMyLjMyODEyNSA1NiAKUSA0My4zNTkzNzUgNTYgNDkuNzgxMjUgNDguODkwNjI1IApRIDU2LjIwMzEyNSA0MS43OTY4NzUgNTYuMjAzMTI1IDI5LjU5Mzc1IAp6Ck0gNDcuMjE4NzUgMzIuMjM0Mzc1IApRIDQ3LjEyNSAzOS41OTM3NSA0My4wOTM3NSA0My45ODQzNzUgClEgMzkuMDYyNSA0OC4zOTA2MjUgMzIuNDIxODc1IDQ4LjM5MDYyNSAKUSAyNC45MDYyNSA0OC4zOTA2MjUgMjAuMzkwNjI1IDQ0LjE0MDYyNSAKUSAxNS44NzUgMzkuODkwNjI1IDE1LjE4NzUgMzIuMTcxODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtMTAxIi8+CiAgICAgIDwvZGVmcz4KICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy04NCIvPgogICAgICA8dXNlIHg9IjU3Ljk1ODk4NCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTA1Ii8+CiAgICAgIDx1c2UgeD0iODUuNzQyMTg4IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMDkiLz4KICAgICAgPHVzZSB4PSIxODMuMTU0Mjk3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMDEiLz4KICAgICA8L2c+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9Im1hdHBsb3RsaWIuYXhpc18yIj4KICAgIDxnIGlkPSJ5dGlja18xIj4KICAgICA8ZyBpZD0ibGluZTJkXzciPgogICAgICA8ZGVmcz4KICAgICAgIDxwYXRoIGQ9Ik0gMCAwIApMIC0zLjUgMCAKIiBpZD0ibTAzYWQ3ZDQ1MzIiIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIvPgogICAgICA8L2RlZnM+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjYyLjg2ODc1IiB4bGluazpocmVmPSIjbTAzYWQ3ZDQ1MzIiIHk9IjIzMi4zNTIzNTQiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF84Ij4KICAgICAgPCEtLSAwLjAwMDIgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjg3ODEyNSAyMzYuMTUxNTczKXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBkPSJNIDEwLjY4NzUgMTIuNDA2MjUgCkwgMjEgMTIuNDA2MjUgCkwgMjEgMCAKTCAxMC42ODc1IDAgCnoKIiBpZD0iRGVqYVZ1U2Fucy00NiIvPgogICAgICAgPC9kZWZzPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSI2My42MjMwNDciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ2Ii8+CiAgICAgICA8dXNlIHg9Ijk1LjQxMDE1NiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMTU5LjAzMzIwMyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMjIyLjY1NjI1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIyODYuMjc5Mjk3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy01MCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inl0aWNrXzIiPgogICAgIDxnIGlkPSJsaW5lMmRfOCI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjYyLjg2ODc1IiB4bGluazpocmVmPSIjbTAzYWQ3ZDQ1MzIiIHk9IjIwMC44MDk3NTgiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF85Ij4KICAgICAgPCEtLSAwLjAwMDQgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjg3ODEyNSAyMDQuNjA4OTc2KXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjYzLjYyMzA0NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDYiLz4KICAgICAgIDx1c2UgeD0iOTUuNDEwMTU2IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxNTkuMDMzMjAzIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIyMjIuNjU2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjI4Ni4yNzkyOTciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTUyIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieXRpY2tfMyI+CiAgICAgPGcgaWQ9ImxpbmUyZF85Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIgeD0iNjIuODY4NzUiIHhsaW5rOmhyZWY9IiNtMDNhZDdkNDUzMiIgeT0iMTY5LjI2NzE2MSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzEwIj4KICAgICAgPCEtLSAwLjAwMDYgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjg3ODEyNSAxNzMuMDY2Mzgpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iNjMuNjIzMDQ3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00NiIvPgogICAgICAgPHVzZSB4PSI5NS40MTAxNTYiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjE1OS4wMzMyMDMiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjIyMi42NTYyNSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMjg2LjI3OTI5NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNTQiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ5dGlja180Ij4KICAgICA8ZyBpZD0ibGluZTJkXzEwIj4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIgeD0iNjIuODY4NzUiIHhsaW5rOmhyZWY9IiNtMDNhZDdkNDUzMiIgeT0iMTM3LjcyNDU2NSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzExIj4KICAgICAgPCEtLSAwLjAwMDggLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjg3ODEyNSAxNDEuNTIzNzgzKXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjYzLjYyMzA0NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDYiLz4KICAgICAgIDx1c2UgeD0iOTUuNDEwMTU2IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxNTkuMDMzMjAzIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIyMjIuNjU2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjI4Ni4yNzkyOTciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTU2Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieXRpY2tfNSI+CiAgICAgPGcgaWQ9ImxpbmUyZF8xMSI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjYyLjg2ODc1IiB4bGluazpocmVmPSIjbTAzYWQ3ZDQ1MzIiIHk9IjEwNi4xODE5NjgiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8xMiI+CiAgICAgIDwhLS0gMC4wMDEwIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMC44NzgxMjUgMTA5Ljk4MTE4NylzY2FsZSgwLjEgLTAuMSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSI2My42MjMwNDciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ2Ii8+CiAgICAgICA8dXNlIHg9Ijk1LjQxMDE1NiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMTU5LjAzMzIwMyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMjIyLjY1NjI1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OSIvPgogICAgICAgPHVzZSB4PSIyODYuMjc5Mjk3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9Inl0aWNrXzYiPgogICAgIDxnIGlkPSJsaW5lMmRfMTIiPgogICAgICA8Zz4KICAgICAgIDx1c2Ugc3R5bGU9InN0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDowLjg7IiB4PSI2Mi44Njg3NSIgeGxpbms6aHJlZj0iI20wM2FkN2Q0NTMyIiB5PSI3NC42MzkzNzIiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgICA8ZyBpZD0idGV4dF8xMyI+CiAgICAgIDwhLS0gMC4wMDEyIC0tPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMC44NzgxMjUgNzguNDM4NTkxKXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjYzLjYyMzA0NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDYiLz4KICAgICAgIDx1c2UgeD0iOTUuNDEwMTU2IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIxNTkuMDMzMjAzIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSIyMjIuNjU2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ5Ii8+CiAgICAgICA8dXNlIHg9IjI4Ni4yNzkyOTciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTUwIi8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyBpZD0ieXRpY2tfNyI+CiAgICAgPGcgaWQ9ImxpbmUyZF8xMyI+CiAgICAgIDxnPgogICAgICAgPHVzZSBzdHlsZT0ic3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuODsiIHg9IjYyLjg2ODc1IiB4bGluazpocmVmPSIjbTAzYWQ3ZDQ1MzIiIHk9IjQzLjA5Njc3NSIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgIDxnIGlkPSJ0ZXh0XzE0Ij4KICAgICAgPCEtLSAwLjAwMTQgLS0+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIwLjg3ODEyNSA0Ni44OTU5OTQpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iNjMuNjIzMDQ3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00NiIvPgogICAgICAgPHVzZSB4PSI5NS40MTAxNTYiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjE1OS4wMzMyMDMiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ4Ii8+CiAgICAgICA8dXNlIHg9IjIyMi42NTYyNSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDkiLz4KICAgICAgIDx1c2UgeD0iMjg2LjI3OTI5NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNTIiLz4KICAgICAgPC9nPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJ5dGlja184Ij4KICAgICA8ZyBpZD0ibGluZTJkXzE0Ij4KICAgICAgPGc+CiAgICAgICA8dXNlIHN0eWxlPSJzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC44OyIgeD0iNjIuODY4NzUiIHhsaW5rOmhyZWY9IiNtMDNhZDdkNDUzMiIgeT0iMTEuNTU0MTc5Ii8+CiAgICAgIDwvZz4KICAgICA8L2c+CiAgICAgPGcgaWQ9InRleHRfMTUiPgogICAgICA8IS0tIDAuMDAxNiAtLT4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjAuODc4MTI1IDE1LjM1MzM5OClzY2FsZSgwLjEgLTAuMSkiPgogICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OCIvPgogICAgICAgPHVzZSB4PSI2My42MjMwNDciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTQ2Ii8+CiAgICAgICA8dXNlIHg9Ijk1LjQxMDE1NiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMTU5LjAzMzIwMyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNDgiLz4KICAgICAgIDx1c2UgeD0iMjIyLjY1NjI1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy00OSIvPgogICAgICAgPHVzZSB4PSIyODYuMjc5Mjk3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy01NCIvPgogICAgICA8L2c+CiAgICAgPC9nPgogICAgPC9nPgogICAgPGcgaWQ9InRleHRfMTYiPgogICAgIDwhLS0gSGF6YXJkIFJhdGUgLS0+CiAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTQuNzk4NDM4IDE2MC4yMTYyNSlyb3RhdGUoLTkwKXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iTSA5LjgxMjUgNzIuOTA2MjUgCkwgMTkuNjcxODc1IDcyLjkwNjI1IApMIDE5LjY3MTg3NSA0My4wMTU2MjUgCkwgNTUuNTE1NjI1IDQzLjAxNTYyNSAKTCA1NS41MTU2MjUgNzIuOTA2MjUgCkwgNjUuMzc1IDcyLjkwNjI1IApMIDY1LjM3NSAwIApMIDU1LjUxNTYyNSAwIApMIDU1LjUxNTYyNSAzNC43MTg3NSAKTCAxOS42NzE4NzUgMzQuNzE4NzUgCkwgMTkuNjcxODc1IDAgCkwgOS44MTI1IDAgCnoKIiBpZD0iRGVqYVZ1U2Fucy03MiIvPgogICAgICAgPHBhdGggZD0iTSAzNC4yODEyNSAyNy40ODQzNzUgClEgMjMuMzkwNjI1IDI3LjQ4NDM3NSAxOS4xODc1IDI1IApRIDE0Ljk4NDM3NSAyMi41MTU2MjUgMTQuOTg0Mzc1IDE2LjUgClEgMTQuOTg0Mzc1IDExLjcxODc1IDE4LjE0MDYyNSA4LjkwNjI1IApRIDIxLjI5Njg3NSA2LjEwOTM3NSAyNi43MDMxMjUgNi4xMDkzNzUgClEgMzQuMTg3NSA2LjEwOTM3NSAzOC43MDMxMjUgMTEuNDA2MjUgClEgNDMuMjE4NzUgMTYuNzAzMTI1IDQzLjIxODc1IDI1LjQ4NDM3NSAKTCA0My4yMTg3NSAyNy40ODQzNzUgCnoKTSA1Mi4yMDMxMjUgMzEuMjAzMTI1IApMIDUyLjIwMzEyNSAwIApMIDQzLjIxODc1IDAgCkwgNDMuMjE4NzUgOC4yOTY4NzUgClEgNDAuMTQwNjI1IDMuMzI4MTI1IDM1LjU0Njg3NSAwLjk1MzEyNSAKUSAzMC45NTMxMjUgLTEuNDIxODc1IDI0LjMxMjUgLTEuNDIxODc1IApRIDE1LjkyMTg3NSAtMS40MjE4NzUgMTAuOTUzMTI1IDMuMjk2ODc1IApRIDYgOC4wMTU2MjUgNiAxNS45MjE4NzUgClEgNiAyNS4xNDA2MjUgMTIuMTcxODc1IDI5LjgyODEyNSAKUSAxOC4zNTkzNzUgMzQuNTE1NjI1IDMwLjYwOTM3NSAzNC41MTU2MjUgCkwgNDMuMjE4NzUgMzQuNTE1NjI1IApMIDQzLjIxODc1IDM1LjQwNjI1IApRIDQzLjIxODc1IDQxLjYwOTM3NSAzOS4xNDA2MjUgNDUgClEgMzUuMDYyNSA0OC4zOTA2MjUgMjcuNjg3NSA0OC4zOTA2MjUgClEgMjMgNDguMzkwNjI1IDE4LjU0Njg3NSA0Ny4yNjU2MjUgClEgMTQuMTA5Mzc1IDQ2LjE0MDYyNSAxMC4wMTU2MjUgNDMuODkwNjI1IApMIDEwLjAxNTYyNSA1Mi4yMDMxMjUgClEgMTQuOTM3NSA1NC4xMDkzNzUgMTkuNTc4MTI1IDU1LjA0Njg3NSAKUSAyNC4yMTg3NSA1NiAyOC42MDkzNzUgNTYgClEgNDAuNDg0Mzc1IDU2IDQ2LjM0Mzc1IDQ5Ljg0Mzc1IApRIDUyLjIwMzEyNSA0My43MDMxMjUgNTIuMjAzMTI1IDMxLjIwMzEyNSAKegoiIGlkPSJEZWphVnVTYW5zLTk3Ii8+CiAgICAgICA8cGF0aCBkPSJNIDUuNTE1NjI1IDU0LjY4NzUgCkwgNDguMTg3NSA1NC42ODc1IApMIDQ4LjE4NzUgNDYuNDg0Mzc1IApMIDE0LjQwNjI1IDcuMTcxODc1IApMIDQ4LjE4NzUgNy4xNzE4NzUgCkwgNDguMTg3NSAwIApMIDQuMjk2ODc1IDAgCkwgNC4yOTY4NzUgOC4yMDMxMjUgCkwgMzguMDkzNzUgNDcuNTE1NjI1IApMIDUuNTE1NjI1IDQ3LjUxNTYyNSAKegoiIGlkPSJEZWphVnVTYW5zLTEyMiIvPgogICAgICAgPHBhdGggZD0iTSA0MS4xMDkzNzUgNDYuMjk2ODc1IApRIDM5LjU5Mzc1IDQ3LjE3MTg3NSAzNy44MTI1IDQ3LjU3ODEyNSAKUSAzNi4wMzEyNSA0OCAzMy44OTA2MjUgNDggClEgMjYuMjY1NjI1IDQ4IDIyLjE4NzUgNDMuMDQ2ODc1IApRIDE4LjEwOTM3NSAzOC4wOTM3NSAxOC4xMDkzNzUgMjguODEyNSAKTCAxOC4xMDkzNzUgMCAKTCA5LjA3ODEyNSAwIApMIDkuMDc4MTI1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDQ2LjE4NzUgClEgMjAuOTUzMTI1IDUxLjE3MTg3NSAyNS40ODQzNzUgNTMuNTc4MTI1IApRIDMwLjAzMTI1IDU2IDM2LjUzMTI1IDU2IApRIDM3LjQ1MzEyNSA1NiAzOC41NzgxMjUgNTUuODc1IApRIDM5LjcwMzEyNSA1NS43NjU2MjUgNDEuMDYyNSA1NS41MTU2MjUgCnoKIiBpZD0iRGVqYVZ1U2Fucy0xMTQiLz4KICAgICAgIDxwYXRoIGQ9Ik0gNDUuNDA2MjUgNDYuMzkwNjI1IApMIDQ1LjQwNjI1IDc1Ljk4NDM3NSAKTCA1NC4zOTA2MjUgNzUuOTg0Mzc1IApMIDU0LjM5MDYyNSAwIApMIDQ1LjQwNjI1IDAgCkwgNDUuNDA2MjUgOC4yMDMxMjUgClEgNDIuNTc4MTI1IDMuMzI4MTI1IDM4LjI1IDAuOTUzMTI1IApRIDMzLjkzNzUgLTEuNDIxODc1IDI3Ljg3NSAtMS40MjE4NzUgClEgMTcuOTY4NzUgLTEuNDIxODc1IDExLjczNDM3NSA2LjQ4NDM3NSAKUSA1LjUxNTYyNSAxNC40MDYyNSA1LjUxNTYyNSAyNy4yOTY4NzUgClEgNS41MTU2MjUgNDAuMTg3NSAxMS43MzQzNzUgNDguMDkzNzUgClEgMTcuOTY4NzUgNTYgMjcuODc1IDU2IApRIDMzLjkzNzUgNTYgMzguMjUgNTMuNjI1IApRIDQyLjU3ODEyNSA1MS4yNjU2MjUgNDUuNDA2MjUgNDYuMzkwNjI1IAp6Ck0gMTQuNzk2ODc1IDI3LjI5Njg3NSAKUSAxNC43OTY4NzUgMTcuMzkwNjI1IDE4Ljg3NSAxMS43NSAKUSAyMi45NTMxMjUgNi4xMDkzNzUgMzAuMDc4MTI1IDYuMTA5Mzc1IApRIDM3LjIwMzEyNSA2LjEwOTM3NSA0MS4yOTY4NzUgMTEuNzUgClEgNDUuNDA2MjUgMTcuMzkwNjI1IDQ1LjQwNjI1IDI3LjI5Njg3NSAKUSA0NS40MDYyNSAzNy4yMDMxMjUgNDEuMjk2ODc1IDQyLjg0Mzc1IApRIDM3LjIwMzEyNSA0OC40ODQzNzUgMzAuMDc4MTI1IDQ4LjQ4NDM3NSAKUSAyMi45NTMxMjUgNDguNDg0Mzc1IDE4Ljg3NSA0Mi44NDM3NSAKUSAxNC43OTY4NzUgMzcuMjAzMTI1IDE0Ljc5Njg3NSAyNy4yOTY4NzUgCnoKIiBpZD0iRGVqYVZ1U2Fucy0xMDAiLz4KICAgICAgIDxwYXRoIGlkPSJEZWphVnVTYW5zLTMyIi8+CiAgICAgICA8cGF0aCBkPSJNIDQ0LjM5MDYyNSAzNC4xODc1IApRIDQ3LjU2MjUgMzMuMTA5Mzc1IDUwLjU2MjUgMjkuNTkzNzUgClEgNTMuNTYyNSAyNi4wNzgxMjUgNTYuNTkzNzUgMTkuOTIxODc1IApMIDY2LjYwOTM3NSAwIApMIDU2IDAgCkwgNDYuNjg3NSAxOC43MDMxMjUgClEgNDMuMDYyNSAyNi4wMzEyNSAzOS42NzE4NzUgMjguNDIxODc1IApRIDM2LjI4MTI1IDMwLjgxMjUgMzAuNDIxODc1IDMwLjgxMjUgCkwgMTkuNjcxODc1IDMwLjgxMjUgCkwgMTkuNjcxODc1IDAgCkwgOS44MTI1IDAgCkwgOS44MTI1IDcyLjkwNjI1IApMIDMyLjA3ODEyNSA3Mi45MDYyNSAKUSA0NC41NzgxMjUgNzIuOTA2MjUgNTAuNzM0Mzc1IDY3LjY3MTg3NSAKUSA1Ni44OTA2MjUgNjIuNDUzMTI1IDU2Ljg5MDYyNSA1MS45MDYyNSAKUSA1Ni44OTA2MjUgNDUuMDE1NjI1IDUzLjY4NzUgNDAuNDY4NzUgClEgNTAuNDg0Mzc1IDM1LjkzNzUgNDQuMzkwNjI1IDM0LjE4NzUgCnoKTSAxOS42NzE4NzUgNjQuNzk2ODc1IApMIDE5LjY3MTg3NSAzOC45MjE4NzUgCkwgMzIuMDc4MTI1IDM4LjkyMTg3NSAKUSAzOS4yMDMxMjUgMzguOTIxODc1IDQyLjg0Mzc1IDQyLjIxODc1IApRIDQ2LjQ4NDM3NSA0NS41MTU2MjUgNDYuNDg0Mzc1IDUxLjkwNjI1IApRIDQ2LjQ4NDM3NSA1OC4yOTY4NzUgNDIuODQzNzUgNjEuNTQ2ODc1IApRIDM5LjIwMzEyNSA2NC43OTY4NzUgMzIuMDc4MTI1IDY0Ljc5Njg3NSAKegoiIGlkPSJEZWphVnVTYW5zLTgyIi8+CiAgICAgICA8cGF0aCBkPSJNIDE4LjMxMjUgNzAuMjE4NzUgCkwgMTguMzEyNSA1NC42ODc1IApMIDM2LjgxMjUgNTQuNjg3NSAKTCAzNi44MTI1IDQ3LjcwMzEyNSAKTCAxOC4zMTI1IDQ3LjcwMzEyNSAKTCAxOC4zMTI1IDE4LjAxNTYyNSAKUSAxOC4zMTI1IDExLjMyODEyNSAyMC4xNDA2MjUgOS40MjE4NzUgClEgMjEuOTY4NzUgNy41MTU2MjUgMjcuNTkzNzUgNy41MTU2MjUgCkwgMzYuODEyNSA3LjUxNTYyNSAKTCAzNi44MTI1IDAgCkwgMjcuNTkzNzUgMCAKUSAxNy4xODc1IDAgMTMuMjM0Mzc1IDMuODc1IApRIDkuMjgxMjUgNy43NjU2MjUgOS4yODEyNSAxOC4wMTU2MjUgCkwgOS4yODEyNSA0Ny43MDMxMjUgCkwgMi42ODc1IDQ3LjcwMzEyNSAKTCAyLjY4NzUgNTQuNjg3NSAKTCA5LjI4MTI1IDU0LjY4NzUgCkwgOS4yODEyNSA3MC4yMTg3NSAKegoiIGlkPSJEZWphVnVTYW5zLTExNiIvPgogICAgICA8L2RlZnM+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNzIiLz4KICAgICAgPHVzZSB4PSI3NS4xOTUzMTIiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTk3Ii8+CiAgICAgIDx1c2UgeD0iMTM2LjQ3NDYwOSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTIyIi8+CiAgICAgIDx1c2UgeD0iMTg4Ljk2NDg0NCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtOTciLz4KICAgICAgPHVzZSB4PSIyNTAuMjQ0MTQxIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMTQiLz4KICAgICAgPHVzZSB4PSIyODkuNjA3NDIyIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMDAiLz4KICAgICAgPHVzZSB4PSIzNTMuMDgzOTg0IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIvPgogICAgICA8dXNlIHg9IjM4NC44NzEwOTQiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTgyIi8+CiAgICAgIDx1c2UgeD0iNDUyLjEwMzUxNiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtOTciLz4KICAgICAgPHVzZSB4PSI1MTMuMzgyODEyIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMTYiLz4KICAgICAgPHVzZSB4PSI1NTIuNTkxNzk3IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMDEiLz4KICAgICA8L2c+CiAgICA8L2c+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF8xNSI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDU3ZmVhMWJmZTIpIiBkPSJNIDgwLjYyMzI5NSAxMzUuMDg2NTAyIApMIDk3LjY0ODIwMiAxMzUuMDg2NTAyIApMIDExMC4xMTI4NjYgMTM1LjA4NjUwMiAKTCAxNDQuMTYyNjc5IDEzNS4wODY1MDIgCkwgMTYyLjcwNzY2NyAxMzUuMDg2NTAyIApMIDE3MC4wMDQwNTUgMTM1LjA4NjUwMiAKTCAxNzMuNjUyMjQ5IDEzNS4wODY1MDIgCkwgMTc3LjMwMDQ0NCAxMzUuMDg2NTAyIApMIDE5MC42NzcxNTYgMTM1LjA4NjUwMiAKTCAxOTMuNzE3MzE4IDEzNS4wODY1MDIgCkwgMTk4Ljg4NTU5MyAxMzUuMDg2NTAyIApMIDIwMy43NDk4NTIgMTM1LjA4NjUwMiAKTCAyMDcuMDk0MDMgMTM1LjA4NjUwMiAKTCAyMDcuNzAyMDYzIDEzNS4wODY1MDIgCkwgMjMzLjg0NzQ1NSAxMzUuMDg2NTAyIApMIDI1Ni42NDg2NjkgMTM1LjA4NjUwMiAKTCAyODguODc0Mzg1IDEzNS4wODY1MDIgCkwgMjk2LjQ3NDc5IDEzNS4wODY1MDIgCkwgMjk2Ljc3ODgwNiAxMzUuMDg2NTAyIApMIDMwNi44MTEzNCAxMzUuMDg2NTAyIApMIDMyMi42MjAxODIgMTM1LjA4NjUwMiAKTCAzNzguODYzMTc3IDEzNS4wODY1MDIgCkwgMzk4LjkyODI0NiAxMzUuMDg2NTAyIApMIDQwNS45MjA2MTggMTM1LjA4NjUwMiAKTCA0MjkuMzI5ODY1IDEzNS4wODY1MDIgCkwgNDM1LjcxNDIwNSAxMzUuMDg2NTAyIAoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMxZjc3YjQ7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS13aWR0aDoxLjU7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF8xNiI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDU3ZmVhMWJmZTIpIiBkPSJNIDgwLjYyMzI5NSA2NS4yNjE1MjIgCkwgOTcuNjQ4MjAyIDY1LjI2MTUyMiAKTCAxMTAuMTEyODY2IDY1LjI2MTUyMiAKTCAxNDQuMTYyNjc5IDY1LjI2MTUyMiAKTCAxNjIuNzA3NjY3IDY1LjI2MTUyMiAKTCAxNzAuMDA0MDU1IDY1LjI2MTUyMiAKTCAxNzMuNjUyMjQ5IDY1LjI2MTUyMiAKTCAxNzcuMzAwNDQ0IDY1LjI2MTUyMiAKTCAxOTAuNjc3MTU2IDY1LjI2MTUyMiAKTCAxOTMuNzE3MzE4IDY1LjI2MTUyMiAKTCAxOTguODg1NTkzIDY1LjI2MTUyMiAKTCAyMDMuNzQ5ODUyIDY1LjI2MTUyMiAKTCAyMDcuMDk0MDMgNjUuMjYxNTIyIApMIDIwNy43MDIwNjMgNjUuMjYxNTIyIApMIDIzMy44NDc0NTUgNjUuMjYxNTIyIApMIDI1Ni42NDg2NjkgNjUuMjYxNTIyIApMIDI4OC44NzQzODUgNjUuMjYxNTIyIApMIDI5Ni40NzQ3OSA2NS4yNjE1MjIgCkwgMjk2Ljc3ODgwNiA2NS4yNjE1MjIgCkwgMzA2LjgxMTM0IDY1LjI2MTUyMiAKTCAzMjIuNjIwMTgyIDY1LjI2MTUyMiAKTCAzNzguODYzMTc3IDY1LjI2MTUyMiAKTCAzOTguOTI4MjQ2IDY1LjI2MTUyMiAKTCA0MDUuOTIwNjE4IDY1LjI2MTUyMiAKTCA0MjkuMzI5ODY1IDY1LjI2MTUyMiAKTCA0MzUuNzE0MjA1IDY1LjI2MTUyMiAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMWY3N2I0O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2Utd2lkdGg6MS41OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfMTciPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A1N2ZlYTFiZmUyKSIgZD0iTSA4MC42MjMyOTUgMTkxLjg4MzYwNSAKTCA5Ny42NDgyMDIgMTkxLjg4MzYwNSAKTCAxMTAuMTEyODY2IDE5MS44ODM2MDUgCkwgMTQ0LjE2MjY3OSAxOTEuODgzNjA1IApMIDE2Mi43MDc2NjcgMTkxLjg4MzYwNSAKTCAxNzAuMDA0MDU1IDE5MS44ODM2MDUgCkwgMTczLjY1MjI0OSAxOTEuODgzNjA1IApMIDE3Ny4zMDA0NDQgMTkxLjg4MzYwNSAKTCAxOTAuNjc3MTU2IDE5MS44ODM2MDUgCkwgMTkzLjcxNzMxOCAxOTEuODgzNjA1IApMIDE5OC44ODU1OTMgMTkxLjg4MzYwNSAKTCAyMDMuNzQ5ODUyIDE5MS44ODM2MDUgCkwgMjA3LjA5NDAzIDE5MS44ODM2MDUgCkwgMjA3LjcwMjA2MyAxOTEuODgzNjA1IApMIDIzMy44NDc0NTUgMTkxLjg4MzYwNSAKTCAyNTYuNjQ4NjY5IDE5MS44ODM2MDUgCkwgMjg4Ljg3NDM4NSAxOTEuODgzNjA1IApMIDI5Ni40NzQ3OSAxOTEuODgzNjA1IApMIDI5Ni43Nzg4MDYgMTkxLjg4MzYwNSAKTCAzMDYuODExMzQgMTkxLjg4MzYwNSAKTCAzMjIuNjIwMTgyIDE5MS44ODM2MDUgCkwgMzc4Ljg2MzE3NyAxOTEuODgzNjA1IApMIDM5OC45MjgyNDYgMTkxLjg4MzYwNSAKTCA0MDUuOTIwNjE4IDE5MS44ODM2MDUgCkwgNDI5LjMyOTg2NSAxOTEuODgzNjA1IApMIDQzNS43MTQyMDUgMTkxLjg4MzYwNSAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMWY3N2I0O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2Utd2lkdGg6MS41OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfMTgiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A1N2ZlYTFiZmUyKSIgZD0iTSA4MC42MjMyOTUgMTUyLjg0NzQxOCAKTCA5Ny42NDgyMDIgMTUyLjg0NzQxOCAKTCAxMTAuMTEyODY2IDE1Mi44NDc0MTggCkwgMTQ0LjE2MjY3OSAxNTIuODQ3NDE4IApMIDE2Mi43MDc2NjcgMTUyLjg0NzQxOCAKTCAxNzAuMDA0MDU1IDE1Mi44NDc0MTggCkwgMTczLjY1MjI0OSAxNTIuODQ3NDE4IApMIDE3Ny4zMDA0NDQgMTUyLjg0NzQxOCAKTCAxOTAuNjc3MTU2IDE1Mi44NDc0MTggCkwgMTkzLjcxNzMxOCAxNTIuODQ3NDE4IApMIDE5OC44ODU1OTMgMTUyLjg0NzQxOCAKTCAyMDMuNzQ5ODUyIDE1Mi44NDc0MTggCkwgMjA3LjA5NDAzIDE1Mi44NDc0MTggCkwgMjA3LjcwMjA2MyAxNTIuODQ3NDE4IApMIDIzMy44NDc0NTUgMTUyLjg0NzQxOCAKTCAyNTYuNjQ4NjY5IDE1Mi44NDc0MTggCkwgMjg4Ljg3NDM4NSAxNTIuODQ3NDE4IApMIDI5Ni40NzQ3OSAxNTIuODQ3NDE4IApMIDI5Ni43Nzg4MDYgMTUyLjg0NzQxOCAKTCAzMDYuODExMzQgMTUyLjg0NzQxOCAKTCAzMjIuNjIwMTgyIDE1Mi44NDc0MTggCkwgMzc4Ljg2MzE3NyAxNTIuODQ3NDE4IApMIDM5OC45MjgyNDYgMTUyLjg0NzQxOCAKTCA0MDUuOTIwNjE4IDE1Mi44NDc0MTggCkwgNDI5LjMyOTg2NSAxNTIuODQ3NDE4IApMIDQzNS43MTQyMDUgMTUyLjg0NzQxOCAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMWY3N2I0O3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2Utd2lkdGg6MS41OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfMTkiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A1N2ZlYTFiZmUyKSIgZD0iTSA4MC42MjMyOTUgMTQzLjY1NTMzMSAKTCA5Ny42NDgyMDIgOTAuMjc5MjU2IApMIDExMC4xMTI4NjYgNzQuOTg0ODk2IApMIDE0NC4xNjI2NzkgNjcuMjA4MzMxIApMIDE2Mi43MDc2NjcgNzAuNDM1ODIxIApMIDE3MC4wMDQwNTUgNzIuMjE4MTA3IApMIDE3My42NTIyNDkgNzMuMTc0ODYxIApMIDE3Ny4zMDA0NDQgNzQuMTY1NTMyIApMIDE5MC42NzcxNTYgNzcuOTk3OTU1IApMIDE5My43MTczMTggNzguODk3NTg0IApMIDE5OC44ODU1OTMgODAuNDQwNDQ0IApMIDIwMy43NDk4NTIgODEuOTAyMjU5IApMIDIwNy4wOTQwMyA4Mi45MDk4NjggCkwgMjA3LjcwMjA2MyA4My4wOTMxNTQgCkwgMjMzLjg0NzQ1NSA5MC44OTU4ODkgCkwgMjU2LjY0ODY2OSA5Ny40MDg3MDQgCkwgMjg4Ljg3NDM4NSAxMDUuOTU5NzI0IApMIDI5Ni40NzQ3OSAxMDcuODU4OTA2IApMIDI5Ni43Nzg4MDYgMTA3LjkzMzk0NSAKTCAzMDYuODExMzQgMTEwLjM3MDU3MSAKTCAzMjIuNjIwMTgyIDExNC4wNTY5NDIgCkwgMzc4Ljg2MzE3NyAxMjUuNzc1NDIyIApMIDM5OC45MjgyNDYgMTI5LjQ4NTM3NSAKTCA0MDUuOTIwNjE4IDEzMC43MjYzMzggCkwgNDI5LjMyOTg2NSAxMzQuNjk4ODYzIApMIDQzNS43MTQyMDUgMTM1LjczNjA2OCAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmY3ZjBlO3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2Utd2lkdGg6MS41OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfMjAiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A1N2ZlYTFiZmUyKSIgZD0iTSA4MC42MjMyOTUgODcuMDgyNjQ1IApMIDk3LjY0ODIwMiAzMC4xODkxNzIgCkwgMTEwLjExMjg2NiAxOC4zMTkwOTEgCkwgMTQ0LjE2MjY3OSAyMS4zMDg0MDggCkwgMTYyLjcwNzY2NyAyOS4yODM3NSAKTCAxNzAuMDA0MDU1IDMyLjcwNDIxOCAKTCAxNzMuNjUyMjQ5IDM0LjQzNjAzOSAKTCAxNzcuMzAwNDQ0IDM2LjE3NDA1MiAKTCAxOTAuNjc3MTU2IDQyLjUyODU1NCAKTCAxOTMuNzE3MzE4IDQzLjk1NzQxNCAKTCAxOTguODg1NTkzIDQ2LjM2NTg3NSAKTCAyMDMuNzQ5ODUyIDQ4LjYwNTI2NSAKTCAyMDcuMDk0MDMgNTAuMTI3NzMxIApMIDIwNy43MDIwNjMgNTAuNDAyOTY1IApMIDIzMy44NDc0NTUgNjEuNzMwNzE2IApMIDI1Ni42NDg2NjkgNzAuNzU0Nzg3IApMIDI4OC44NzQzODUgODIuMTk3NTU5IApMIDI5Ni40NzQ3OSA4NC42ODkyMzggCkwgMjk2Ljc3ODgwNiA4NC43ODczNTggCkwgMzA2LjgxMTM0IDg3Ljk2MDUzMyAKTCAzMjIuNjIwMTgyIDkyLjcxNjI1MSAKTCAzNzguODYzMTc3IDEwNy41MjYwNyAKTCAzOTguOTI4MjQ2IDExMi4xMzA2OTMgCkwgNDA1LjkyMDYxOCAxMTMuNjYyOTIgCkwgNDI5LjMyOTg2NSAxMTguNTQyMzQxIApMIDQzNS43MTQyMDUgMTE5LjgxMDE3NiAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmY3ZjBlO3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2Utd2lkdGg6MS41OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsaW5lMmRfMjEiPgogICAgPHBhdGggY2xpcC1wYXRoPSJ1cmwoI3A1N2ZlYTFiZmUyKSIgZD0iTSA4MC42MjMyOTUgMjQwLjcwMDkwOSAKTCA5Ny42NDgyMDIgMjE2LjQ2NTk0OCAKTCAxMTAuMTEyODY2IDIwNC4yNzQ5OTcgCkwgMTQ0LjE2MjY3OSAxODYuMDM3NjQ2IApMIDE2Mi43MDc2NjcgMTgxLjM0MzQ5MyAKTCAxNzAuMDA0MDU1IDE4MC4wODQ1NyAKTCAxNzMuNjUyMjQ5IDE3OS41NTI1MTUgCkwgMTc3LjMwMDQ0NCAxNzkuMDc4MzI2IApMIDE5MC42NzcxNTYgMTc3Ljc2MzMwNiAKTCAxOTMuNzE3MzE4IDE3Ny41NDQyNCAKTCAxOTguODg1NTkzIDE3Ny4yMjk0ODYgCkwgMjAzLjc0OTg1MiAxNzYuOTkzNTY3IApMIDIwNy4wOTQwMyAxNzYuODYyMTcxIApMIDIwNy43MDIwNjMgMTc2Ljg0MDgxIApMIDIzMy44NDc0NTUgMTc2LjUyMjkgCkwgMjU2LjY0ODY2OSAxNzYuOTM0NzE1IApMIDI4OC44NzQzODUgMTc4LjE0ODU2NiAKTCAyOTYuNDc0NzkgMTc4LjUwNDIwMiAKTCAyOTYuNzc4ODA2IDE3OC41MTg4MzYgCkwgMzA2LjgxMTM0IDE3OS4wMTcxOTQgCkwgMzIyLjYyMDE4MiAxNzkuODUyNzIgCkwgMzc4Ljg2MzE3NyAxODMuMDg3OTA2IApMIDM5OC45MjgyNDYgMTg0LjI3NjM5NiAKTCA0MDUuOTIwNjE4IDE4NC42OTAxMiAKTCA0MjkuMzI5ODY1IDE4Ni4wNjY5MjYgCkwgNDM1LjcxNDIwNSAxODYuNDM5MjExIAoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmZjdmMGU7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS13aWR0aDoxLjU7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9ImxpbmUyZF8yMiI+CiAgICA8cGF0aCBjbGlwLXBhdGg9InVybCgjcDU3ZmVhMWJmZTIpIiBkPSJNIDgwLjYyMzI5NSAyMjUuMzAwNjc2IApMIDk3LjY0ODIwMiAxOTIuNjU4MTIgCkwgMTEwLjExMjg2NiAxNzguMTY0NzEgCkwgMTQ0LjE2MjY3OSAxNTkuNTAwMjg5IApMIDE2Mi43MDc2NjcgMTU1Ljc4ODM3IApMIDE3MC4wMDQwNTUgMTU0Ljk4Mjk4MyAKTCAxNzMuNjUyMjQ5IDE1NC42ODQ0NDEgCkwgMTc3LjMwMDQ0NCAxNTQuNDQ2NjExIApMIDE5MC42NzcxNTYgMTU0LjAwNzkyOCAKTCAxOTMuNzE3MzE4IDE1My45ODc3NjUgCkwgMTk4Ljg4NTU5MyAxNTQuMDA5Mjk3IApMIDIwMy43NDk4NTIgMTU0LjA4NjkyOSAKTCAyMDcuMDk0MDMgMTU0LjE2OTA1MSAKTCAyMDcuNzAyMDYzIDE1NC4xODYzMTUgCkwgMjMzLjg0NzQ1NSAxNTUuNDU5NjI1IApMIDI1Ni42NDg2NjkgMTU3LjEzMzYxMyAKTCAyODguODc0Mzg1IDE1OS45MzAyMjkgCkwgMjk2LjQ3NDc5IDE2MC42MjcwNTQgCkwgMjk2Ljc3ODgwNiAxNjAuNjU1MDk0IApMIDMwNi44MTEzNCAxNjEuNTg1ODI4IApMIDMyMi42MjAxODIgMTYzLjA2NDc1MyAKTCAzNzguODYzMTc3IDE2OC4yNjM4MTUgCkwgMzk4LjkyODI0NiAxNzAuMDQ5NDE4IApMIDQwNS45MjA2MTggMTcwLjY2MDMxNyAKTCA0MjkuMzI5ODY1IDE3Mi42NTk4MiAKTCA0MzUuNzE0MjA1IDE3My4xOTI1NzYgCiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmN2YwZTtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLXdpZHRoOjEuNTsiLz4KICAgPC9nPgogICA8ZyBpZD0icGF0Y2hfMyI+CiAgICA8cGF0aCBkPSJNIDYyLjg2ODc1IDI1MS44MiAKTCA2Mi44Njg3NSA3LjIgCiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS13aWR0aDowLjg7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9InBhdGNoXzQiPgogICAgPHBhdGggZD0iTSA0NTMuNDY4NzUgMjUxLjgyIApMIDQ1My40Njg3NSA3LjIgCiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS13aWR0aDowLjg7Ii8+CiAgIDwvZz4KICAgPGcgaWQ9InBhdGNoXzUiPgogICAgPHBhdGggZD0iTSA2Mi44Njg3NSAyNTEuODIgCkwgNDUzLjQ2ODc1IDI1MS44MiAKIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwMDAwO3N0cm9rZS1saW5lY2FwOnNxdWFyZTtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLXdpZHRoOjAuODsiLz4KICAgPC9nPgogICA8ZyBpZD0icGF0Y2hfNiI+CiAgICA8cGF0aCBkPSJNIDYyLjg2ODc1IDcuMiAKTCA0NTMuNDY4NzUgNy4yIAoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utd2lkdGg6MC44OyIvPgogICA8L2c+CiAgIDxnIGlkPSJsZWdlbmRfMSI+CiAgICA8ZyBpZD0icGF0Y2hfNyI+CiAgICAgPHBhdGggZD0iTSAzMTMuNjEwOTM3IDQ0LjU1NjI1IApMIDQ0Ni40Njg3NSA0NC41NTYyNSAKUSA0NDguNDY4NzUgNDQuNTU2MjUgNDQ4LjQ2ODc1IDQyLjU1NjI1IApMIDQ0OC40Njg3NSAxNC4yIApRIDQ0OC40Njg3NSAxMi4yIDQ0Ni40Njg3NSAxMi4yIApMIDMxMy42MTA5MzcgMTIuMiAKUSAzMTEuNjEwOTM3IDEyLjIgMzExLjYxMDkzNyAxNC4yIApMIDMxMS42MTA5MzcgNDIuNTU2MjUgClEgMzExLjYxMDkzNyA0NC41NTYyNSAzMTMuNjEwOTM3IDQ0LjU1NjI1IAp6CiIgc3R5bGU9ImZpbGw6I2ZmZmZmZjtvcGFjaXR5OjAuODtzdHJva2U6I2NjY2NjYztzdHJva2UtbGluZWpvaW46bWl0ZXI7Ii8+CiAgICA8L2c+CiAgICA8ZyBpZD0ibGluZTJkXzIzIj4KICAgICA8cGF0aCBkPSJNIDMxNS42MTA5MzcgMjAuMjk4NDM4IApMIDMzNS42MTA5MzcgMjAuMjk4NDM4IAoiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMxZjc3YjQ7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS13aWR0aDoxLjU7Ii8+CiAgICA8L2c+CiAgICA8ZyBpZD0ibGluZTJkXzI0Ii8+CiAgICA8ZyBpZD0idGV4dF8xNyI+CiAgICAgPCEtLSBQcm9wb3J0aW9uYWwgSGF6YXJkIC0tPgogICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0My42MTA5MzcgMjMuNzk4NDM4KXNjYWxlKDAuMSAtMC4xKSI+CiAgICAgIDxkZWZzPgogICAgICAgPHBhdGggZD0iTSAxOS42NzE4NzUgNjQuNzk2ODc1IApMIDE5LjY3MTg3NSAzNy40MDYyNSAKTCAzMi4wNzgxMjUgMzcuNDA2MjUgClEgMzguOTY4NzUgMzcuNDA2MjUgNDIuNzE4NzUgNDAuOTY4NzUgClEgNDYuNDg0Mzc1IDQ0LjUzMTI1IDQ2LjQ4NDM3NSA1MS4xMjUgClEgNDYuNDg0Mzc1IDU3LjY3MTg3NSA0Mi43MTg3NSA2MS4yMzQzNzUgClEgMzguOTY4NzUgNjQuNzk2ODc1IDMyLjA3ODEyNSA2NC43OTY4NzUgCnoKTSA5LjgxMjUgNzIuOTA2MjUgCkwgMzIuMDc4MTI1IDcyLjkwNjI1IApRIDQ0LjM0Mzc1IDcyLjkwNjI1IDUwLjYwOTM3NSA2Ny4zNTkzNzUgClEgNTYuODkwNjI1IDYxLjgxMjUgNTYuODkwNjI1IDUxLjEyNSAKUSA1Ni44OTA2MjUgNDAuMzI4MTI1IDUwLjYwOTM3NSAzNC44MTI1IApRIDQ0LjM0Mzc1IDI5LjI5Njg3NSAzMi4wNzgxMjUgMjkuMjk2ODc1IApMIDE5LjY3MTg3NSAyOS4yOTY4NzUgCkwgMTkuNjcxODc1IDAgCkwgOS44MTI1IDAgCnoKIiBpZD0iRGVqYVZ1U2Fucy04MCIvPgogICAgICAgPHBhdGggZD0iTSAzMC42MDkzNzUgNDguMzkwNjI1IApRIDIzLjM5MDYyNSA0OC4zOTA2MjUgMTkuMTg3NSA0Mi43NSAKUSAxNC45ODQzNzUgMzcuMTA5Mzc1IDE0Ljk4NDM3NSAyNy4yOTY4NzUgClEgMTQuOTg0Mzc1IDE3LjQ4NDM3NSAxOS4xNTYyNSAxMS44NDM3NSAKUSAyMy4zNDM3NSA2LjIwMzEyNSAzMC42MDkzNzUgNi4yMDMxMjUgClEgMzcuNzk2ODc1IDYuMjAzMTI1IDQxLjk4NDM3NSAxMS44NTkzNzUgClEgNDYuMTg3NSAxNy41MzEyNSA0Ni4xODc1IDI3LjI5Njg3NSAKUSA0Ni4xODc1IDM3LjAxNTYyNSA0MS45ODQzNzUgNDIuNzAzMTI1IApRIDM3Ljc5Njg3NSA0OC4zOTA2MjUgMzAuNjA5Mzc1IDQ4LjM5MDYyNSAKegpNIDMwLjYwOTM3NSA1NiAKUSA0Mi4zMjgxMjUgNTYgNDkuMDE1NjI1IDQ4LjM3NSAKUSA1NS43MTg3NSA0MC43NjU2MjUgNTUuNzE4NzUgMjcuMjk2ODc1IApRIDU1LjcxODc1IDEzLjg3NSA0OS4wMTU2MjUgNi4yMTg3NSAKUSA0Mi4zMjgxMjUgLTEuNDIxODc1IDMwLjYwOTM3NSAtMS40MjE4NzUgClEgMTguODQzNzUgLTEuNDIxODc1IDEyLjE3MTg3NSA2LjIxODc1IApRIDUuNTE1NjI1IDEzLjg3NSA1LjUxNTYyNSAyNy4yOTY4NzUgClEgNS41MTU2MjUgNDAuNzY1NjI1IDEyLjE3MTg3NSA0OC4zNzUgClEgMTguODQzNzUgNTYgMzAuNjA5Mzc1IDU2IAp6CiIgaWQ9IkRlamFWdVNhbnMtMTExIi8+CiAgICAgICA8cGF0aCBkPSJNIDE4LjEwOTM3NSA4LjIwMzEyNSAKTCAxOC4xMDkzNzUgLTIwLjc5Njg3NSAKTCA5LjA3ODEyNSAtMjAuNzk2ODc1IApMIDkuMDc4MTI1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDQ2LjM5MDYyNSAKUSAyMC45NTMxMjUgNTEuMjY1NjI1IDI1LjI2NTYyNSA1My42MjUgClEgMjkuNTkzNzUgNTYgMzUuNTkzNzUgNTYgClEgNDUuNTYyNSA1NiA1MS43ODEyNSA0OC4wOTM3NSAKUSA1OC4wMTU2MjUgNDAuMTg3NSA1OC4wMTU2MjUgMjcuMjk2ODc1IApRIDU4LjAxNTYyNSAxNC40MDYyNSA1MS43ODEyNSA2LjQ4NDM3NSAKUSA0NS41NjI1IC0xLjQyMTg3NSAzNS41OTM3NSAtMS40MjE4NzUgClEgMjkuNTkzNzUgLTEuNDIxODc1IDI1LjI2NTYyNSAwLjk1MzEyNSAKUSAyMC45NTMxMjUgMy4zMjgxMjUgMTguMTA5Mzc1IDguMjAzMTI1IAp6Ck0gNDguNjg3NSAyNy4yOTY4NzUgClEgNDguNjg3NSAzNy4yMDMxMjUgNDQuNjA5Mzc1IDQyLjg0Mzc1IApRIDQwLjUzMTI1IDQ4LjQ4NDM3NSAzMy40MDYyNSA0OC40ODQzNzUgClEgMjYuMjY1NjI1IDQ4LjQ4NDM3NSAyMi4xODc1IDQyLjg0Mzc1IApRIDE4LjEwOTM3NSAzNy4yMDMxMjUgMTguMTA5Mzc1IDI3LjI5Njg3NSAKUSAxOC4xMDkzNzUgMTcuMzkwNjI1IDIyLjE4NzUgMTEuNzUgClEgMjYuMjY1NjI1IDYuMTA5Mzc1IDMzLjQwNjI1IDYuMTA5Mzc1IApRIDQwLjUzMTI1IDYuMTA5Mzc1IDQ0LjYwOTM3NSAxMS43NSAKUSA0OC42ODc1IDE3LjM5MDYyNSA0OC42ODc1IDI3LjI5Njg3NSAKegoiIGlkPSJEZWphVnVTYW5zLTExMiIvPgogICAgICAgPHBhdGggZD0iTSA1NC44OTA2MjUgMzMuMDE1NjI1IApMIDU0Ljg5MDYyNSAwIApMIDQ1LjkwNjI1IDAgCkwgNDUuOTA2MjUgMzIuNzE4NzUgClEgNDUuOTA2MjUgNDAuNDg0Mzc1IDQyLjg3NSA0NC4zMjgxMjUgClEgMzkuODQzNzUgNDguMTg3NSAzMy43OTY4NzUgNDguMTg3NSAKUSAyNi41MTU2MjUgNDguMTg3NSAyMi4zMTI1IDQzLjU0Njg3NSAKUSAxOC4xMDkzNzUgMzguOTIxODc1IDE4LjEwOTM3NSAzMC45MDYyNSAKTCAxOC4xMDkzNzUgMCAKTCA5LjA3ODEyNSAwIApMIDkuMDc4MTI1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDU0LjY4NzUgCkwgMTguMTA5Mzc1IDQ2LjE4NzUgClEgMjEuMzQzNzUgNTEuMTI1IDI1LjcwMzEyNSA1My41NjI1IApRIDMwLjA3ODEyNSA1NiAzNS43OTY4NzUgNTYgClEgNDUuMjE4NzUgNTYgNTAuMDQ2ODc1IDUwLjE3MTg3NSAKUSA1NC44OTA2MjUgNDQuMzQzNzUgNTQuODkwNjI1IDMzLjAxNTYyNSAKegoiIGlkPSJEZWphVnVTYW5zLTExMCIvPgogICAgICAgPHBhdGggZD0iTSA5LjQyMTg3NSA3NS45ODQzNzUgCkwgMTguNDA2MjUgNzUuOTg0Mzc1IApMIDE4LjQwNjI1IDAgCkwgOS40MjE4NzUgMCAKegoiIGlkPSJEZWphVnVTYW5zLTEwOCIvPgogICAgICA8L2RlZnM+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtODAiLz4KICAgICAgPHVzZSB4PSI1OC41NTI3MzQiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTExNCIvPgogICAgICA8dXNlIHg9Ijk3LjQxNjAxNiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTExIi8+CiAgICAgIDx1c2UgeD0iMTU4LjU5NzY1NiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTEyIi8+CiAgICAgIDx1c2UgeD0iMjIyLjA3NDIxOSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTExIi8+CiAgICAgIDx1c2UgeD0iMjgzLjI1NTg1OSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTE0Ii8+CiAgICAgIDx1c2UgeD0iMzI0LjM2OTE0MSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTE2Ii8+CiAgICAgIDx1c2UgeD0iMzYzLjU3ODEyNSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTA1Ii8+CiAgICAgIDx1c2UgeD0iMzkxLjM2MTMyOCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTExIi8+CiAgICAgIDx1c2UgeD0iNDUyLjU0Mjk2OSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTEwIi8+CiAgICAgIDx1c2UgeD0iNTE1LjkyMTg3NSIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtOTciLz4KICAgICAgPHVzZSB4PSI1NzcuMjAxMTcyIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMDgiLz4KICAgICAgPHVzZSB4PSI2MDQuOTg0Mzc1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0zMiIvPgogICAgICA8dXNlIHg9IjYzNi43NzE0ODQiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTcyIi8+CiAgICAgIDx1c2UgeD0iNzExLjk2Njc5NyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtOTciLz4KICAgICAgPHVzZSB4PSI3NzMuMjQ2MDk0IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy0xMjIiLz4KICAgICAgPHVzZSB4PSI4MjUuNzM2MzI4IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy05NyIvPgogICAgICA8dXNlIHg9Ijg4Ny4wMTU2MjUiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTExNCIvPgogICAgICA8dXNlIHg9IjkyNi4zNzg5MDYiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwMCIvPgogICAgIDwvZz4KICAgIDwvZz4KICAgIDxnIGlkPSJsaW5lMmRfMjUiPgogICAgIDxwYXRoIGQ9Ik0gMzE1LjYxMDkzNyAzNC45NzY1NjMgCkwgMzM1LjYxMDkzNyAzNC45NzY1NjMgCiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2ZmN2YwZTtzdHJva2UtbGluZWNhcDpzcXVhcmU7c3Ryb2tlLXdpZHRoOjEuNTsiLz4KICAgIDwvZz4KICAgIDxnIGlkPSJsaW5lMmRfMjYiLz4KICAgIDxnIGlkPSJ0ZXh0XzE4Ij4KICAgICA8IS0tIEFjY2VsZXJhdGluZyBIYXphcmQgLS0+CiAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQzLjYxMDkzNyAzOC40NzY1NjMpc2NhbGUoMC4xIC0wLjEpIj4KICAgICAgPGRlZnM+CiAgICAgICA8cGF0aCBkPSJNIDM0LjE4NzUgNjMuMTg3NSAKTCAyMC43OTY4NzUgMjYuOTA2MjUgCkwgNDcuNjA5Mzc1IDI2LjkwNjI1IAp6Ck0gMjguNjA5Mzc1IDcyLjkwNjI1IApMIDM5Ljc5Njg3NSA3Mi45MDYyNSAKTCA2Ny41NzgxMjUgMCAKTCA1Ny4zMjgxMjUgMCAKTCA1MC42ODc1IDE4LjcwMzEyNSAKTCAxNy44MjgxMjUgMTguNzAzMTI1IApMIDExLjE4NzUgMCAKTCAwLjc4MTI1IDAgCnoKIiBpZD0iRGVqYVZ1U2Fucy02NSIvPgogICAgICAgPHBhdGggZD0iTSA0OC43ODEyNSA1Mi41OTM3NSAKTCA0OC43ODEyNSA0NC4xODc1IApRIDQ0Ljk2ODc1IDQ2LjI5Njg3NSA0MS4xNDA2MjUgNDcuMzQzNzUgClEgMzcuMzEyNSA0OC4zOTA2MjUgMzMuNDA2MjUgNDguMzkwNjI1IApRIDI0LjY1NjI1IDQ4LjM5MDYyNSAxOS44MTI1IDQyLjg0Mzc1IApRIDE0Ljk4NDM3NSAzNy4zMTI1IDE0Ljk4NDM3NSAyNy4yOTY4NzUgClEgMTQuOTg0Mzc1IDE3LjI4MTI1IDE5LjgxMjUgMTEuNzM0Mzc1IApRIDI0LjY1NjI1IDYuMjAzMTI1IDMzLjQwNjI1IDYuMjAzMTI1IApRIDM3LjMxMjUgNi4yMDMxMjUgNDEuMTQwNjI1IDcuMjUgClEgNDQuOTY4NzUgOC4yOTY4NzUgNDguNzgxMjUgMTAuNDA2MjUgCkwgNDguNzgxMjUgMi4wOTM3NSAKUSA0NS4wMTU2MjUgMC4zNDM3NSA0MC45ODQzNzUgLTAuNTMxMjUgClEgMzYuOTY4NzUgLTEuNDIxODc1IDMyLjQyMTg3NSAtMS40MjE4NzUgClEgMjAuMDYyNSAtMS40MjE4NzUgMTIuNzgxMjUgNi4zNDM3NSAKUSA1LjUxNTYyNSAxNC4xMDkzNzUgNS41MTU2MjUgMjcuMjk2ODc1IApRIDUuNTE1NjI1IDQwLjY3MTg3NSAxMi44NTkzNzUgNDguMzI4MTI1IApRIDIwLjIxODc1IDU2IDMzLjAxNTYyNSA1NiAKUSAzNy4xNTYyNSA1NiA0MS4xMDkzNzUgNTUuMTQwNjI1IApRIDQ1LjA2MjUgNTQuMjk2ODc1IDQ4Ljc4MTI1IDUyLjU5Mzc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtOTkiLz4KICAgICAgIDxwYXRoIGQ9Ik0gNDUuNDA2MjUgMjcuOTg0Mzc1IApRIDQ1LjQwNjI1IDM3Ljc1IDQxLjM3NSA0My4xMDkzNzUgClEgMzcuMzU5Mzc1IDQ4LjQ4NDM3NSAzMC4wNzgxMjUgNDguNDg0Mzc1IApRIDIyLjg1OTM3NSA0OC40ODQzNzUgMTguODI4MTI1IDQzLjEwOTM3NSAKUSAxNC43OTY4NzUgMzcuNzUgMTQuNzk2ODc1IDI3Ljk4NDM3NSAKUSAxNC43OTY4NzUgMTguMjY1NjI1IDE4LjgyODEyNSAxMi44OTA2MjUgClEgMjIuODU5Mzc1IDcuNTE1NjI1IDMwLjA3ODEyNSA3LjUxNTYyNSAKUSAzNy4zNTkzNzUgNy41MTU2MjUgNDEuMzc1IDEyLjg5MDYyNSAKUSA0NS40MDYyNSAxOC4yNjU2MjUgNDUuNDA2MjUgMjcuOTg0Mzc1IAp6Ck0gNTQuMzkwNjI1IDYuNzgxMjUgClEgNTQuMzkwNjI1IC03LjE3MTg3NSA0OC4xODc1IC0xMy45ODQzNzUgClEgNDIgLTIwLjc5Njg3NSAyOS4yMDMxMjUgLTIwLjc5Njg3NSAKUSAyNC40Njg3NSAtMjAuNzk2ODc1IDIwLjI2NTYyNSAtMjAuMDkzNzUgClEgMTYuMDYyNSAtMTkuMzkwNjI1IDEyLjEwOTM3NSAtMTcuOTIxODc1IApMIDEyLjEwOTM3NSAtOS4xODc1IApRIDE2LjA2MjUgLTExLjMyODEyNSAxOS45MjE4NzUgLTEyLjM0Mzc1IApRIDIzLjc4MTI1IC0xMy4zNzUgMjcuNzgxMjUgLTEzLjM3NSAKUSAzNi42MjUgLTEzLjM3NSA0MS4wMTU2MjUgLTguNzY1NjI1IApRIDQ1LjQwNjI1IC00LjE1NjI1IDQ1LjQwNjI1IDUuMTcxODc1IApMIDQ1LjQwNjI1IDkuNjI1IApRIDQyLjYyNSA0Ljc4MTI1IDM4LjI4MTI1IDIuMzkwNjI1IApRIDMzLjkzNzUgMCAyNy44NzUgMCAKUSAxNy44MjgxMjUgMCAxMS42NzE4NzUgNy42NTYyNSAKUSA1LjUxNTYyNSAxNS4zMjgxMjUgNS41MTU2MjUgMjcuOTg0Mzc1IApRIDUuNTE1NjI1IDQwLjY3MTg3NSAxMS42NzE4NzUgNDguMzI4MTI1IApRIDE3LjgyODEyNSA1NiAyNy44NzUgNTYgClEgMzMuOTM3NSA1NiAzOC4yODEyNSA1My42MDkzNzUgClEgNDIuNjI1IDUxLjIxODc1IDQ1LjQwNjI1IDQ2LjM5MDYyNSAKTCA0NS40MDYyNSA1NC42ODc1IApMIDU0LjM5MDYyNSA1NC42ODc1IAp6CiIgaWQ9IkRlamFWdVNhbnMtMTAzIi8+CiAgICAgIDwvZGVmcz4KICAgICAgPHVzZSB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy02NSIvPgogICAgICA8dXNlIHg9IjY2LjY1ODIwMyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtOTkiLz4KICAgICAgPHVzZSB4PSIxMjEuNjM4NjcyIiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy05OSIvPgogICAgICA8dXNlIHg9IjE3Ni42MTkxNDEiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwMSIvPgogICAgICA8dXNlIHg9IjIzOC4xNDI1NzgiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwOCIvPgogICAgICA8dXNlIHg9IjI2NS45MjU3ODEiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwMSIvPgogICAgICA8dXNlIHg9IjMyNy40NDkyMTkiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTExNCIvPgogICAgICA8dXNlIHg9IjM2OC41NjI1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy05NyIvPgogICAgICA8dXNlIHg9IjQyOS44NDE3OTciIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTExNiIvPgogICAgICA8dXNlIHg9IjQ2OS4wNTA3ODEiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwNSIvPgogICAgICA8dXNlIHg9IjQ5Ni44MzM5ODQiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTExMCIvPgogICAgICA8dXNlIHg9IjU2MC4yMTI4OTEiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEwMyIvPgogICAgICA8dXNlIHg9IjYyMy42ODk0NTMiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTMyIi8+CiAgICAgIDx1c2UgeD0iNjU1LjQ3NjU2MiIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtNzIiLz4KICAgICAgPHVzZSB4PSI3MzAuNjcxODc1IiB4bGluazpocmVmPSIjRGVqYVZ1U2Fucy05NyIvPgogICAgICA8dXNlIHg9Ijc5MS45NTExNzIiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTEyMiIvPgogICAgICA8dXNlIHg9Ijg0NC40NDE0MDYiIHhsaW5rOmhyZWY9IiNEZWphVnVTYW5zLTk3Ii8+CiAgICAgIDx1c2UgeD0iOTA1LjcyMDcwMyIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTE0Ii8+CiAgICAgIDx1c2UgeD0iOTQ1LjA4Mzk4NCIgeGxpbms6aHJlZj0iI0RlamFWdVNhbnMtMTAwIi8+CiAgICAgPC9nPgogICAgPC9nPgogICA8L2c+CiAgPC9nPgogPC9nPgogPGRlZnM+CiAgPGNsaXBQYXRoIGlkPSJwNTdmZWExYmZlMiI+CiAgIDxyZWN0IGhlaWdodD0iMjQ0LjYyIiB3aWR0aD0iMzkwLjYiIHg9IjYyLjg2ODc1IiB5PSI3LjIiLz4KICA8L2NsaXBQYXRoPgogPC9kZWZzPgo8L3N2Zz4K"
     ]
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Accelerated Failure Time Model\n",
    "\n",
    "The Accelerated Failure Time (AFT) model is an alternative to [Cox's proportional hazards model](https://en.wikipedia.org/wiki/Proportional_hazards_model). The latter assumes that features only influence the hazard function via a constant multiplicative factor. In contrast, features in an AFT model can accelerate or decelerate the time to an event by a constant factor. The figure below depicts the predicted hazard functions of a proportional hazards model in blue and that of an AFT model in orange.\n",
    "\n",
    "![aft-ph.svg](attachment:aft-ph.svg)\n",
    "\n",
    "We can see that the hazard remains constant for the proportional hazards model and varies for the AFT model.\n",
    "\n",
    "The objective function in an AFT model can be expressed as a weighted least squares problem with respect to the logarithm of the survival time:\n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "  \\arg \\min_{f} \\quad \\frac{1}{n} \\sum_{i=1}^n\n",
    "    \\omega_i (\\log y_i - f(\\mathbf{x}_i)) .\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "The weight $\\omega_i$ associated with the $i$-th sample is the inverse probability of being censored after time $y_i$:\n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "  \\omega_i = \\frac{\\delta_i}{\\hat{G}(y_i)} ,\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "where $\\hat{G}(\\cdot)$ is an estimator of the censoring survivor function.\n",
    "\n",
    "Such a model can be fit with [sksurv.ensemble.GradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/latest/api/generated/sksurv.ensemble.GradientBoostingSurvivalAnalysis.html#sksurv.ensemble.GradientBoostingSurvivalAnalysis) or\n",
    "[sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis](https://scikit-survival.readthedocs.io/en/latest/api/generated/sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis.html#sksurv.ensemble.ComponentwiseGradientBoostingSurvivalAnalysis)\n",
    "by specifying the `loss=\"ipcwls\"` argument."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.722\n"
     ]
    }
   ],
   "source": [
    "est_aft_ls = ComponentwiseGradientBoostingSurvivalAnalysis(\n",
    "    loss=\"ipcwls\", n_estimators=300, learning_rate=1.0, random_state=0\n",
    ").fit(X_train, y_train)\n",
    "cindex = est_aft_ls.score(X_test, y_test)\n",
    "print(round(cindex, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Regularization\n",
    "\n",
    "The most important parameter in gradient boosting is the number of base learner to use (`n_estimators` argument). A higher number will lead to a more complex model. However, this can easily lead to overfitting on the training data. The easiest way would be to just use less base estimators, but there are three alternatives to combat overfitting:\n",
    "\n",
    "1. Use a `learning_rate` less than 1 to restrict the influence of individual base learners, similar to the [Ridge penalty](coxnet.ipynb#Ridge).\n",
    "2. Use a non-zero `dropout_rate`, which forces base learners to also account for some of the previously fitted base learners to be missing.\n",
    "3. Use `subsample` less than 1 such that each iteration only a portion of the training data is used. This is also known as *stochastic gradient boosting*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_estimators = [i * 5 for i in range(1, 21)]\n",
    "\n",
    "estimators = {\n",
    "    \"no regularization\": GradientBoostingSurvivalAnalysis(learning_rate=1.0, max_depth=1, random_state=0),\n",
    "    \"learning rate\": GradientBoostingSurvivalAnalysis(learning_rate=0.1, max_depth=1, random_state=0),\n",
    "    \"dropout\": GradientBoostingSurvivalAnalysis(learning_rate=1.0, dropout_rate=0.1, max_depth=1, random_state=0),\n",
    "    \"subsample\": GradientBoostingSurvivalAnalysis(learning_rate=1.0, subsample=0.5, max_depth=1, random_state=0),\n",
    "}\n",
    "\n",
    "scores_reg = {k: [] for k in estimators.keys()}\n",
    "for n in n_estimators:\n",
    "    for name, est in estimators.items():\n",
    "        est.set_params(n_estimators=n)\n",
    "        est.fit(X_train, y_train)\n",
    "        cindex = est.score(X_test, y_test)\n",
    "        scores_reg[name].append(cindex)\n",
    "\n",
    "scores_reg = pd.DataFrame(scores_reg, index=n_estimators)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = scores_reg.plot(xlabel=\"n_estimators\", ylabel=\"concordance index\")\n",
    "ax.grid(True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The plot reveals that using dropout or a learning rate are most effective in avoiding overfitting. Moreover, the learning rate and ensemble size are strongly connected, choosing smaller a learning rate suggests increasing `n_estimators`. Therefore, it is recommended to use a relatively small learning rate and select the number of estimators via *early stopping*. Note that we can also apply multiple types of regularization, such as regularization by learning rate and subsampling. Since not all training data is used, this allows using the left-out data to evaluate whether we should continue adding more base learners or stop training."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitted base learners: 80\n",
      "Performance on test set 0.715\n"
     ]
    }
   ],
   "source": [
    "class EarlyStoppingMonitor:\n",
    "    def __init__(self, window_size, max_iter_without_improvement):\n",
    "        self.window_size = window_size\n",
    "        self.max_iter_without_improvement = max_iter_without_improvement\n",
    "        self._best_step = -1\n",
    "\n",
    "    def __call__(self, iteration, estimator, args):\n",
    "        # continue training for first self.window_size iterations\n",
    "        if iteration < self.window_size:\n",
    "            return False\n",
    "\n",
    "        # compute average improvement in last self.window_size iterations.\n",
    "        # oob_improvement_ is the different in negative log partial likelihood\n",
    "        # between the previous and current iteration.\n",
    "        start = iteration - self.window_size + 1\n",
    "        end = iteration + 1\n",
    "        improvement = np.mean(estimator.oob_improvement_[start:end])\n",
    "\n",
    "        if improvement > 1e-6:\n",
    "            self._best_step = iteration\n",
    "            return False  # continue fitting\n",
    "\n",
    "        # stop fitting if there was no improvement\n",
    "        # in last max_iter_without_improvement iterations\n",
    "        diff = iteration - self._best_step\n",
    "        return diff >= self.max_iter_without_improvement\n",
    "\n",
    "\n",
    "est_early_stopping = GradientBoostingSurvivalAnalysis(\n",
    "    n_estimators=1000, learning_rate=0.1, subsample=0.5, max_depth=1, random_state=0\n",
    ")\n",
    "\n",
    "monitor = EarlyStoppingMonitor(10, 5)\n",
    "\n",
    "est_early_stopping.fit(X_train, y_train, monitor=monitor)\n",
    "\n",
    "print(\"Fitted base learners:\", est_early_stopping.n_estimators_)\n",
    "\n",
    "cindex = est_early_stopping.score(X_test, y_test)\n",
    "print(\"Performance on test set\", round(cindex, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The monitor looks at the average improvement of the last 10 iterations, and if it was negative for the last 5 iterations, it will abort training. In this case, this occurred after 80 iterations. We can plot the improvement per base learner and the moving average."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "improvement = pd.Series(\n",
    "    est_early_stopping.oob_improvement_, index=np.arange(1, 1 + len(est_early_stopping.oob_improvement_))\n",
    ")\n",
    "ax = improvement.plot(xlabel=\"iteration\", ylabel=\"oob improvement\")\n",
    "ax.axhline(0.0, linestyle=\"--\", color=\"gray\")\n",
    "cutoff = len(improvement) - monitor.max_iter_without_improvement\n",
    "ax.axvline(cutoff, linestyle=\"--\", color=\"C3\")\n",
    "\n",
    "_ = improvement.rolling(monitor.window_size).mean().plot(ax=ax, linestyle=\":\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
